#ifndef __INTRINS_H__
#define __INTRINS_H__

#include <stdint.h>

#define MD3U32 (*(unsigned long volatile __xdata *)0xfcf0)
#define MD3U16 (*(unsigned int volatile __xdata *)0xfcf0)
#define MD1U16 (*(unsigned int volatile __xdata *)0xfcf2)
#define MD5U16 (*(unsigned int volatile __xdata *)0xfcf4)

#define MD3    (*(unsigned char volatile __xdata *)0xfcf0)
#define MD2    (*(unsigned char volatile __xdata *)0xfcf1)
#define MD1    (*(unsigned char volatile __xdata *)0xfcf2)
#define MD0    (*(unsigned char volatile __xdata *)0xfcf3)
#define MD5    (*(unsigned char volatile __xdata *)0xfcf4)
#define MD4    (*(unsigned char volatile __xdata *)0xfcf5)
#define ARCON  (*(unsigned char volatile __xdata *)0xfcf6)
#define OPCON  (*(unsigned char volatile __xdata *)0xfcf7)

#define LEFT_SHIFT  (2<<5)
#define RIGHT_SHIFT (1<<5)
#define MUL_16BITX2 (4<<5)

#define nop() __asm NOP __endasm
//extern bit           _testbit_ (bit);
#ifdef USE_MDU16
extern unsigned char _cror_    (unsigned char, unsigned char);
extern unsigned int  _iror_    (unsigned int,  unsigned char);
extern unsigned long _lror_    (unsigned long, unsigned char);
extern unsigned char _crol_    (unsigned char, unsigned char);
extern unsigned int  _irol_    (unsigned int,  unsigned char);
extern unsigned long _lrol_    (unsigned long, unsigned char);
extern unsigned char _chkfloat_(float);
extern void          _push_    (unsigned char _sfr);
extern void          _pop_     (unsigned char _sfr);
#endif

#endif

/*————————————————
版权声明：本文为CSDN博主「文质彬彬online」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。
//原文链接：https://blog.csdn.net/qq_34706280/article/details/78702861
*/
